Computing devices are often designed to perform a variety of tasks in a variety of configurations. Because of this flexibility, computing devices commonly require some customer-specific configuration in order to meet the customer's needs. A configured computing device includes customer-specific application loads or other configuration information. One problem in the distribution of computing devices is the difficulty of maintaining an inventory of configured computing devices. That is, storing configured computing devices can be a difficult and costly endeavor because of the multitude of customer needs.
One conventional way of addressing this problem is to load the computing device with a standard configuration at the time of manufacture. A standard configuration includes applications or customizations that the customer can specify at the time of ordering. A limitation of this approach, however, is the degree to which standard configurations can encompass the needs of enterprise customers. Although many home users may have similar configuration requirements, enterprise users often require more specific configurations. Further, a standard configuration can become outdated or in need of software updates while the computing device is stored in a warehouse or waiting for deployment at the customer's premises.
To address these challenges, system installers and enterprises are increasingly using images in the deployment of computing devices to customers or end users. An image represents a software configuration that can be loaded onto a computing device in order to configure the computing device with customer-specific information, such as applications or operating systems. Conventionally, images are used to replicate an established system configuration to a number of similar computing devices. In a personal computer, for example, an image typically replicates the hard drive contents of the established system. Images can be used to reduce the amount of time required to install and to configure individually each of a number of computing devices.
The use of images enables the computing device manufacturer to store generic computing devices that can be easily configured at the time of deployment. In some computing environments, such as server-based computing using thin clients, images can be distributed from a networked server. Thin clients typically write an image into a memory device, such as flash memory, because they lack hard drives or other secondary storage devices. One problem with distributing images from a server, however, is that network configuration is often required for the computing device to communicate with the server. For an initial customer installation, the computing device may fail to connect with the server because it does not have the proper network configuration information for the customer's network.
Further, the customer's premises may lack a high speed connection to a server from which an image can be downloaded. While the computing device may be connected to the server via a slow data rate connection, such as a modem over an analog telephone network, downloading an image via such a connection may be challenging. Although the slow data rate connection may be suitable for operating the computing device, it may take significant time for the computing device to download the image, during which time the computing device cannot be used for other workloads. In a thin client, for example, an image may require 16 megabytes or more of data to be transferred from the server.
In another conventional technique for deploying thin clients, a compact disc read only memory (CD-ROM) media is shipped to customer's premises. Thin clients typically do not have CD-ROM devices, so a CD-ROM drive is typically shipped as well in order to read the media. The CD-ROM drive can be locally connected to the thin clients. A drawback of this approach, however, is that shipping the CD-ROM media and drive to the customer can be expensive. Another disadvantage is that user intervention is typically needed for the computing device to boot off the CD-ROM or to update its configuration from a CD-ROM image. Further, CD-ROMs may have slow data throughput and high seek latencies. Thus it may take significant time for the computing device to read the image from the CD-ROM.
What is needed is a technique for providing configured computing devices that does not require network delivery of images or costly delivery of hardware to the customer's premises. What is further needed is a technique for creating images that can be used to configure generic computing devices with customer-specified or ordered features.